package com.buss.product.dao;

import com.buss.core.dic.RecordStatus;
import com.buss.core.persistence.OrderBy;
import com.buss.core.persistence.Paginalbe;
import com.buss.core.persistence.Pagination;
import com.buss.core.persistence.ResultList;
import com.buss.product.model.GoodsCategory;

public interface GoodsCategoryDao {

	/**
	 * 新增商品分类信息
	 * @param category
	 */
	public GoodsCategory saveCategory(GoodsCategory category);
	
	/***
	 * 修改商品分类信息
	 * @param category
	 */
	public void editCategory(GoodsCategory category);	
	
	/**
	 * 保存商品分类和品牌的对应关系
	 * @param categoryId
	 * @param brandIds
	 */
	public void updateCategoryBrand(Long categoryId,Long[] brandIds);
	
	/**
	 * 保存商品分类对应商品属性分组对应关系
	 * @param categoryId
	 * @param groupIds
	 */
	public void updateCategoryPropGroup(Long categoryId,Long[] groupIds);
	
	/**
	 * 删除指定商品分类信息
	 * @param ids
	 */
	public void removeCategory(Long[] ids);
	
	/**
	 * 获取指定的商品分类信息
	 * @param id
	 * @return
	 */
	public GoodsCategory loadCategory(Long id);
	
	/**
	 * 获取指定的商品分类信息
	 * @param companyId
	 * @param code
	 * @return
	 */
	public GoodsCategory loadCategory(String companyId, String code);
	
	/**
	 * 获取商品分类信息列表	
	 * @param companyId
	 * @param name
	 * @param branchId
	 * @param parentId
	 * @param status
	 * @param propGroupId
	 * @param orderBy
	 * @param page
	 * @return
	 */
	public ResultList<GoodsCategory> queryCategory(String companyId,String branchId,
			Long parentId,String name,
			RecordStatus status,Long propGroupId,
			OrderBy orderBy,Paginalbe page);
}
